Antalya 26.1 - hybrid: added support for segment pruning#1721
Conversation
Codebase Consistency Review — Altinity/ClickHouse PR #1721Scope. PR adds User flag: "AFAIR there was already code for pruning things and detect always false expression." That intuition is correct. Executive summaryOne High consistency finding, one Medium. The pruner reimplements the core of FindingsFinding 1 — Reinvents
|
Review report: #1721 — "Antalya 26.1 — hybrid: added support for segment pruning"SummaryAdds a conservative satisfiability pruner ( Reviewed scope
BlockersB1. Pruner appears to be a no-op on the analyzer path
B2. New "base pruned + additional segments survive" branch bypasses
|
arthurpassos
left a comment
There was a problem hiding this comment.
I honestly can't help much here
| @@ -0,0 +1,127 @@ | |||
| -- Tags: no-fasttest | |||
There was a problem hiding this comment.
Nit: perhaps instead of select count you could do select * or select ts to prove the values being returned are the correct ones.
| }; | ||
| replace_hybrid_params(predicate_ast); | ||
| return predicate_ast; | ||
| auto try_prune_additional = [&](size_t segment_idx, const String & target) -> bool |
There was a problem hiding this comment.
I got lost here. Hasn't computeHybridPruningVerdict computed the pruning verdict for each and every segment? What does prune_additional do and why is it needed?
How can segment_idx >= pruning_verdict.segments_pruned.size() be true? As far as I can tell, the pruning_verdict created by computeHybridPruningVerdict creates an entry for each and every segment.
|
Superceded by #1788 |
Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):
Hybrid tables now don't scan the segments if the query + segment predicate are proven to return nothing
Documentation entry for user-facing changes
...
CI/CD Options
Exclude tests:
Regression jobs to run: